const numbers = [1, 2, 3, 4, 5];
const strArr = [...'hello'];


/**
 * ES6中的  扩展运算符 -> 实现合并数组
 */
let newVar = [...numbers, ...strArr];

console.log(newVar);
/*
[
  1,   2,   3,   4,   5,
  'h', 'e', 'l', 'l', 'o'
]
 */

const a1 = [{foo: 1}];
const a2 = [{bar: 1}];


// 合并数组, 将两个数组a1和a2合并成为新数组, 但是他们的成员都是对原数组成员的引用, 都是浅拷贝!
let a4 = [...a1, ...a2];
console.log(`a4[0] === a1[0] : ${a4[0] === a1[0]}`) // true
console.log(`a4[1] === a2[0] : ${a4[1] === a2[0]}`) // true


// 任何定义了遍历器 (Iterator) 接口的对象, 都可以用扩展运算符转为真正的数组
// let nodeList = document.querySelectorAll('div');
// let arr = [...nodeList];


let newArr02 = Array.of();


// 数组实例的find方法, 用于找出第一个符合条件的数组成员,
// 它的参数是一个回调函数, 所有数组成员依次执行该回调函数,
// 直到找出第一个返回值为true的成员, 然后返回该成员, 如果没有则符合条件, 这返回undefined
let number = [1, 4, -5, 10].find(n => n < 0);
[1, 4, -5, 10].find((value, index, obj) => {
    return index > 2;
});
let numberIndex = [1, 4, -5, 10].findIndex(n => n < 0);
console.log(number)
console.log(numberIndex)
